#pragma once
#include "Pokemon.h"
#include <vector>

class Player
{
public:
	Player();
	Player(const std::vector<Pokemon>& _source);
	Player(const Player& _source);
	~Player();

	std::vector<Pokemon> GetAllPokemons() const { return m_AllPokemons; }
	Pokemon* GetFirstPokemon() { return &m_AllPokemons[m_Party[0]]; }
	int GetPartyCount() const { return m_Party.size(); }
	Pokemon& GetPokemonInParty(int _index) { return m_AllPokemons[m_Party[_index]]; }
	int GetPokemonLeftInParty();

	void AddPokemon(Pokemon& _newPokemon);
	void DisplayParty() const;
	void DisplayAllPokemons() const;
	void InitAllPokemons();
	bool IsAlive() const;

private:
	std::vector<int> m_Party;
	std::vector<Pokemon> m_AllPokemons;

	Pokemon* GetPokemonInList(const Pokemon* const _pokemon);
	void PickStarterPokemon();
};

